-; UltimateKEYS (for AutoHotkey v2.0).ahk - 2022-05-23
+; UltimateKEYS (for AutoHotkey v2.0).ahk - 2022-06-02
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
cmpCaron["T"] := "{u+0164}" ; (Ť) T with caron
cmpCaron["u"] := "{u+01d4}" ; (ǔ) u with caron
cmpCaron["U"] := "{u+01d3}" ; (Ǔ) U with caron
-cmpCaron["v"] := "{u+01da}" ; (ǚ) u with diaeresis and caron
-cmpCaron["V"] := "{u+01d9}" ; (Ǚ) U with diaeresis and caron
cmpCaron["z"] := "{u+017e}" ; (ž) z with caron
cmpCaron["Z"] := "{u+017d}" ; (Ž) Z with caron
cmpCaron["3"] := "{u+01ef}" ; (ǯ) small letter ezh with caron
cmpMacronStroke["O"] := "{u+014c}" ; (Ō) O with macron
cmpMacronStroke["p"] := "{u+1d7d}" ; (ᵽ) p with stroke
cmpMacronStroke["P"] := "{u+2c63}" ; (Ᵽ) P with stroke
+cmpMacronStroke["q"] := "{u+01ed}" ; (ǭ) o with ogonek and macron
+cmpMacronStroke["Q"] := "{u+01ec}" ; (Ǭ) O with ogonek and macron
cmpMacronStroke["r"] := "{u+024d}" ; (ɍ) r with stroke
cmpMacronStroke["R"] := "{u+024c}" ; (Ɍ) R with stroke
cmpMacronStroke["t"] := "{u+0167}" ; (ŧ) t with stroke
cmpMacronStroke["T"] := "{u+0166}" ; (Ŧ) T with stroke
cmpMacronStroke["u"] := "{u+016b}" ; (ū) u with macron
cmpMacronStroke["U"] := "{u+016a}" ; (Ū) U with macron
-cmpMacronStroke["v"] := "{u+01d6}" ; (ǖ) u with diaeresis and macron
-cmpMacronStroke["V"] := "{u+01d5}" ; (Ǖ) U with diaeresis and macron
cmpMacronStroke["y"] := "{u+0233}" ; (ȳ) y with macron
cmpMacronStroke["Y"] := "{u+0232}" ; (Ȳ) Y with macron
cmpMacronStroke["z"] := "{u+01b6}" ; (ƶ) z with stroke
; Compose : Macron/Stroke (Additional) (_)
global cmpMacronStrokeAdd := Map()
-cmpMacronStrokeAdd["a"] := "{u+01e3}" ; (ǣ) ae with macron
-cmpMacronStrokeAdd["A"] := "{u+01e2}" ; (Ǣ) AE with macron
cmpMacronStrokeAdd["g"] := "{u+1e21}" ; (ḡ) g with macron
cmpMacronStrokeAdd["G"] := "{u+1e20}" ; (Ḡ) G with macron
cmpMacronStrokeAdd["i"] := "{u+0268}" ; (ɨ) i with stroke
cmpMacronStrokeAdd["I"] := "{u+0197}" ; (Ɨ) I with stroke
cmpMacronStrokeAdd["l"] := "{u+019a}" ; (ƚ) l with bar
cmpMacronStrokeAdd["L"] := "{u+023d}" ; (Ƚ) L with bar
-cmpMacronStrokeAdd["o"] := "{u+01ed}" ; (ǭ) o with ogonek and macron
-cmpMacronStrokeAdd["O"] := "{u+01ec}" ; (Ǭ) O with ogonek and macron
cmpMacronStrokeAdd["u"] := "{u+0289}" ; (ʉ) u with bar
cmpMacronStrokeAdd["U"] := "{u+0244}" ; (Ʉ) U with bar
cmpMacronStrokeAdd["y"] := "{u+024f}" ; (ɏ) y with stroke
cmpStroke["G"] := "{u+a7a0}" ; (Ꞡ) G with oblique stroke
cmpStroke["k"] := "{u+a7a3}" ; (ꞣ) k with oblique stroke
cmpStroke["K"] := "{u+a7a2}" ; (Ꞣ) K with oblique stroke
+cmpStroke["l"] := "{u+0142}" ; (ł) l with stroke
+cmpStroke["L"] := "{u+0141}" ; (Ł) L with stroke
cmpStroke["n"] := "{u+a7a5}" ; (ꞥ) n with oblique stroke
cmpStroke["N"] := "{u+a7a4}" ; (Ꞥ) N with oblique stroke
cmpStroke["o"] := "{u+00f8}" ; (ø) o with stroke
cmpCedillaOgonek[" "] := "{u+00b8}" ; (¸) cedilla
-; Compose : Breve/Special (b)
+; Compose : Breve and Special Letters (b)
global cmpBreveSpecial := Map()
cmpBreveSpecial["a"] := "{u+0103}" ; (ă) a with breve
cmpAcuteAccent["S"] := "{u+015a}" ; (Ś) S with acute
cmpAcuteAccent["u"] := "{u+00fa}" ; (ú) u with acute
cmpAcuteAccent["U"] := "{u+00da}" ; (Ú) U with acute
-cmpAcuteAccent["v"] := "{u+01d8}" ; (ǘ) u with diaeresis and acute
-cmpAcuteAccent["V"] := "{u+01d7}" ; (Ǘ) U with diaeresis and acute
cmpAcuteAccent["w"] := "{u+1e83}" ; (ẃ) w with acute
cmpAcuteAccent["W"] := "{u+1e82}" ; (Ẃ) W with acute
cmpAcuteAccent["y"] := "{u+00fd}" ; (ý) y with acute
cmpAcuteAccent["Y"] := "{u+00dd}" ; (Ý) Y with acute
cmpAcuteAccent["z"] := "{u+017a}" ; (ź) z with acute
cmpAcuteAccent["Z"] := "{u+0179}" ; (Ź) Z with acute
-cmpAcuteAccent["b"] := "{u+01fb}" ; (ǻ) a with ring above and acute
-cmpAcuteAccent["B"] := "{u+01fa}" ; (Ǻ) A with ring above and acute
-cmpAcuteAccent["d"] := "{u+1e09}" ; (ḉ) c with cedilla and acute
-cmpAcuteAccent["D"] := "{u+1e08}" ; (Ḉ) C with cedilla and acute
-cmpAcuteAccent["f"] := "{u+01fd}" ; (ǽ) ae with acute
-cmpAcuteAccent["F"] := "{u+01fc}" ; (Ǽ) AE with acute
-cmpAcuteAccent["q"] := "{u+01ff}" ; (ǿ) o with stroke and acute
-cmpAcuteAccent["Q"] := "{u+01fe}" ; (Ǿ) O with stroke and acute
cmpAcuteAccent[" "] := "{u+00b4}" ; (´) acute accent
cmpDiaeresis[" "] := "{u+00a8}" ; (¨) diaeresis
-; Compose : Double Acute Accent and Special Letters (=)
+; Compose : Double Acute Accent (=)
global cmpDoubleAcute := Map()
cmpDoubleAcute["o"] := "{u+0151}" ; (ő) o with double acute
cmpDoubleAcute["O"] := "{u+0150}" ; (Ő) O with double acute
cmpDoubleAcute["u"] := "{u+0171}" ; (ű) u with double acute
cmpDoubleAcute["U"] := "{u+0170}" ; (Ű) U with double acute
-cmpDoubleAcute["h"] := "{u+a727}" ; (ꜧ) small letter heng
-cmpDoubleAcute["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
cmpDoubleAcute[" "] := "{u+02dd}" ; (˝) double acute accent
cmpGraveAccent["O"] := "{u+00d2}" ; (Ò) O with grave
cmpGraveAccent["u"] := "{u+00f9}" ; (ù) u with grave
cmpGraveAccent["U"] := "{u+00d9}" ; (Ù) U with grave
-cmpGraveAccent["v"] := "{u+01dc}" ; (ǜ) u with diaeresis and grave
-cmpGraveAccent["V"] := "{u+01db}" ; (Ǜ) U with diaeresis and grave
cmpGraveAccent["w"] := "{u+1e81}" ; (ẁ) w with grave
cmpGraveAccent["W"] := "{u+1e80}" ; (Ẁ) W with grave
cmpGraveAccent["y"] := "{u+1ef3}" ; (ỳ) y with grave
cmpGraveAccent[" "] := "{u+02cb}" ; (ˋ) grave accent (modifier)
-; Compose : Double Grave (G)
+; Compose : Double Grave Accent (G)
global cmpDoubleGrave := Map()
cmpDoubleGrave["a"] := "{u+0201}" ; (ȁ) a with double grave
cmpHook["U"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
-; Compose : Horn and Special Letters (H)
+; Compose : Horn and Other Letters (H)
global cmpHorn := Map()
cmpHorn["o"] := "{u+01a1}" ; (ơ) o with horn
cmpHorn["U"] := "{u+01af}" ; (Ư) U with horn
cmpHorn["g"] := "{u+ab36}" ; (ꬶ) cross-tailed g
cmpHorn["h"] := "{u+0267}" ; (ɧ) small letter heng with hook
+cmpHorn["j"] := "{u+a727}" ; (ꜧ) small letter heng
+cmpHorn["J"] := "{u+a726}" ; (Ꜧ) capital letter heng
cmpHorn["k"] := "{u+0138}" ; (ĸ) small letter kra
cmpHorn["s"] := "{u+017f}" ; (ſ) small long s
cmpHorn["S"] := "{u+1e9b}" ; (ẛ) small long s with dot above
cmpTurned["V"] := "{u+0245}" ; (Ʌ) latin capital letter turned V
-; Compose : Currency ($)
+; Compose : Currency Symbols ($)
global cmpCurrency := Map()
cmpCurrency["a"] := "{u+058f}" ; (֏) Armenian dram
cmpSymbols["w"] := "{u+26a0}" ; (⚠) warning sign
cmpSymbols["x"] := "{u+2717}" ; (✗) ballot x
cmpSymbols["X"] := "{u+2718}" ; (✘) heavy ballot x
+cmpSymbols["y"] := "{u+2713}" ; (✓) check mark
+cmpSymbols["Y"] := "{u+2714}" ; (✔) heavy check mark
cmpSymbols["2"] := "{u+266b}" ; (♫) beamed eighth notes
cmpSymbols["3"] := "{u+2042}" ; (⁂) asterism
cmpSymbols["5"] := "{u+2605}" ; (★) black star
; Compose : General/Math Symbols
+global cmpEight := Map()
global cmpSmallN := Map()
global cmpCapitalN := Map()
-global cmpSmallP := Map()
global cmpCapitalP := Map()
global cmpSmallR := Map()
+global cmpSemicolon := Map()
global cmpAsterisk := Map()
global cmpExclam := Map()
global cmpQuestion := Map()
global cmpParenLeft := Map()
global cmpPercent := Map()
-global cmpEight := Map()
global cmpLessThan := Map()
global cmpGreaterThan := Map()
global cmpBracketLeft := Map()
-cmpInvertedBreve["b"] := "{u+2022}" ; (•) bullet
-cmpInvertedBreve["t"] := "{u+2023}" ; (‣) triangular bullet
-cmpInvertedBreve["h"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpInvertedBreve["w"] := "{u+25e6}" ; (◦) white bullet
cmpSmallD["d"] := "{u+2020}" ; (†) dagger
cmpCapitalD["D"] := "{u+2021}" ; (‡) double dagger
+cmpSmallI["i"] := "{u+221e}" ; (∞) infinity symbol
+cmpEight["8"] := "{u+221e}" ; (∞) infinity symbol
cmpMathSymbols["i"] := "{u+00b5}" ; (µ) micro sign
cmpSmallN["o"] := "{u+2116}" ; (№) numero sign
cmpCapitalN["o"] := "{u+2116}" ; (№) numero sign
cmpRingAbove["x"] := "{u+00a4}" ; (¤) currency sign
-cmpSmallP["p"] := "{u+00b6}" ; (¶) pilcrow sign
+cmpSuperscript["p"] := "{u+00b6}" ; (¶) pilcrow sign
cmpCapitalP["P"] := "{u+00b6}" ; (¶) pilcrow sign
cmpSmallR["2"] := "{u+221a}" ; (√) square root
cmpSmallR["3"] := "{u+221b}" ; (∛) cube root
cmpSymbols["o"] := "{u+00a7}" ; (§) section sign
cmpPlayingCardSuit["o"] := "{u+00a7}" ; (§) section sign
cmpTurned["m"] := "{u+2122}" ; (™) trademark symbol
+cmpSemicolon["b"] := "{u+2022}" ; (•) bullet
+cmpSemicolon[";"] := "{u+2022}" ; (•) bullet
+cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon["w"] := "{u+25e6}" ; (◦) white bullet
cmpAcuteAccent["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent["3"] := "{u+2034}" ; (‴) triple prime
cmpPercent["%"] := "{u+2030}" ; (‰) per mille sign
cmpPercent["3"] := "{u+2030}" ; (‰) per mille sign
cmpPercent["4"] := "{u+2031}" ; (‱) per ten thousand sign
-cmpEight["8"] := "{u+221e}" ; (∞) infinity symbol
cmpExclam["="] := "{u+2260}" ; (≠) not equal to
-cmpDoubleAcute["/"] := "{u+2260}" ; (≠) not equal to
-cmpStroke["="] := "{u+2260}" ; (≠) not equal to
+cmpLessThan[">"] := "{u+2260}" ; (≠) not equal to
cmpLessThan["="] := "{u+2264}" ; (≤) less-than or equal to
cmpGreaterThan["="] := "{u+2265}" ; (≥) greater-than or equal to
cmpLessThan["+"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to
cmpTilde["~"] := "{u+2248}" ; (≈) almost equal to
cmpBracketLeft["]"] := "{u+2610}" ; (☐) ballot box
cmpBracketLeft["v"] := "{u+2611}" ; (☑) ballot box with check
+cmpBracketLeft["y"] := "{u+2611}" ; (☑) ballot box with check
cmpBracketLeft["x"] := "{u+2612}" ; (☒) ballot box with x
cmpAcuteAccent[">"] := "{u+203a}" ; (›) right-pointing single angle quotation mark
-; Compose : Letters with Two Accents
+; Compose : Letters with Two Diacritical Marks
+global cmpCapitalC := Map()
+global cmpSmallE := Map()
+global cmpCapitalE := Map()
global cmpCapitalU := Map()
cmpArrow[chr(34)] := "{u+01df}" ; (ǟ) a with diaeresis and macron
cmpCapitalA[chr(34)] := "{u+01de}" ; (Ǟ) A with diaeresis and macron
cmpArrow["."] := "{u+01e1}" ; (ǡ) a with dot above and macron
cmpCapitalA["."] := "{u+01e0}" ; (Ǡ) A with dot above and macron
+cmpArrow["'"] := "{u+01fb}" ; (ǻ) a with ring above and acute
+cmpCapitalA["'"] := "{u+01fa}" ; (Ǻ) A with ring above and acute
+cmpCircumflex["'"] := "{u+1e09}" ; (ḉ) c with cedilla and acute
+cmpCapitalC["'"] := "{u+1e08}" ; (Ḉ) C with cedilla and acute
+cmpSmallE["-"] := "{u+01e3}" ; (ǣ) ae with macron
+cmpCapitalE["-"] := "{u+01e2}" ; (Ǣ) AE with macron
+cmpSmallE["'"] := "{u+01fd}" ; (ǽ) ae with acute
+cmpCapitalE["'"] := "{u+01fc}" ; (Ǽ) AE with acute
+cmpRingAbove[","] := "{u+01ed}" ; (ǭ) o with ogonek and macron
+cmpCapitalO[","] := "{u+01ec}" ; (Ǭ) O with ogonek and macron
+cmpRingAbove["'"] := "{u+01ff}" ; (ǿ) o with stroke and acute
+cmpCapitalO["'"] := "{u+01fe}" ; (Ǿ) O with stroke and acute
cmpRingAbove[chr(34)] := "{u+022b}" ; (ȫ) o with diaeresis and macron
cmpCapitalO[chr(34)] := "{u+022a}" ; (Ȫ) O with diaeresis and macron
cmpRingAbove["~"] := "{u+022d}" ; (ȭ) o with tilde and macron
Send "{u+00db}" ; (Û) U with circumflex
}
->!-:: {
+>!6:: {
if GetKeyState("CapsLock", "T")
Send "{u+00c3}" ; (Ã) A with tilde
else
Send "{u+00e3}" ; (ã) a with tilde
}
->!_:: {
+>!+6:: {
if GetKeyState("CapsLock", "T")
Send "{u+00e3}" ; (ã) a with tilde
else
Send "{u+00c3}" ; (Ã) A with tilde
}
->!=:: {
+>!7:: {
if GetKeyState("CapsLock", "T")
Send "{u+00d5}" ; (Õ) O with tilde
else
Send "{u+00f5}" ; (õ) o with tilde
}
->!+=:: {
+>!+7:: {
if GetKeyState("CapsLock", "T")
Send "{u+00f5}" ; (õ) o with tilde
else
Send "{u+00d5}" ; (Õ) O with tilde
}
->!m::Send "{u+00b5}" ; (µ) micro sign
+>!m::Send "{u+2030}" ; (‰) per mille sign
>!+m::Send "{u+00b1}" ; (±) plus-minus sign
>!1::Send "{u+00a1}" ; (¡) inverted exclamation mark
>!+1::Send "{u+00b9}" ; (¹) superscript 1
->!2::Send "{u+2013}" ; (–) en dash
+>!2::Send "{u+2264}" ; (≤) less-than or equal to
>!+2::Send "{u+00b2}" ; (²) superscript 2
->!3::Send "{u+2014}" ; (—) em dash
+>!3::Send "{u+2265}" ; (≥) greater-than or equal to
>!+3::Send "{u+00b3}" ; (³) superscript 3
>!4::Send "{u+00a3}" ; (£) pound sign
>!5::Send "{u+20ac}" ; (€) euro sign
>!+5::Send "{u+00a2}" ; (¢) cent sign (dollar)
->!6::Send "{u+2264}" ; (≤) less-than or equal to
->!+6::Send "{u+2260}" ; (≠) not equal to
-
->!7::Send "{u+2265}" ; (≥) greater-than or equal to
->!+7::Send "{u+2248}" ; (≈) almost equal to
-
>!8::Send "{u+201e}" ; („) double low-9 quotation mark
->!+8::Send "{u+201a}" ; (‚) single low-9 quotation mark
+>!+8::Send "{u+00a7}" ; (§) section sign
>!9::Send "{u+201c}" ; (“) left double quotation mark
>!+9::Send "{u+2018}" ; (‘) left single quotation mark
>!0::Send "{u+201d}" ; (”) right double quotation mark
>!+0::Send "{u+2019}" ; (’) right single quotation mark
+>!-::Send "{u+2013}" ; (–) en dash
+>!_::Send "{u+2014}" ; (—) em dash
+
+>!=::Send "{u+00d7}" ; (×) multiplication sign
+>!+=::Send "{u+00f7}" ; (÷) division sign
+
>![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark
>!{::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark
>!;::Send "{u+00b0}" ; (°) degree sign
>!+;::Send "{u+00b7}" ; (·) middle dot
->!'::Send "{u+00d7}" ; (×) multiplication sign
->!+'::Send "{u+00f7}" ; (÷) division sign
+>!'::Send "{u+2020}" ; (†) dagger
+>!+'::Send "{u+2021}" ; (‡) double dagger
->!\::Send "{u+00a7}" ; (§) section sign
->!|::Send "{u+2030}" ; (‰) per mille sign
+>!\::Send "{u+2002}" ; en space
+>!|::Send "{u+2003}" ; em space
>!/::Send "{u+00bf}" ; (¿) inverted question mark
>!?::Send "{u+2026}" ; (…) horizontal ellipsis
if cmpCapitalN.Has(ihB.Input)
Send cmpCapitalN[ihB.Input]
}
- else if (ihA.Input == "p") {
- if cmpSmallP.Has(ihB.Input)
- Send cmpSmallP[ihB.Input]
- }
else if (ihA.Input == "P") {
if cmpCapitalP.Has(ihB.Input)
Send cmpCapitalP[ihB.Input]
if cmpSmallR.Has(ihB.Input)
Send cmpSmallR[ihB.Input]
}
+ else if (ihA.Input == ";") {
+ if cmpSemicolon.Has(ihB.Input)
+ Send cmpSemicolon[ihB.Input]
+ }
else if (ihA.Input == "*") {
if cmpAsterisk.Has(ihB.Input)
Send cmpAsterisk[ihB.Input]
if cmpBracketRight.Has(ihB.Input)
Send cmpBracketRight[ihB.Input]
}
+ else if (ihA.Input == "C") {
+ if cmpCapitalC.Has(ihB.Input)
+ Send cmpCapitalC[ihB.Input]
+ }
+ else if (ihA.Input == "e") {
+ if cmpSmallE.Has(ihB.Input)
+ Send cmpSmallE[ihB.Input]
+ }
+ else if (ihA.Input == "E") {
+ if cmpCapitalE.Has(ihB.Input)
+ Send cmpCapitalE[ihB.Input]
+ }
else if (ihA.Input == "U") {
if cmpCapitalU.Has(ihB.Input)
Send cmpCapitalU[ihB.Input]